package playing;


import java.io.*;
import java.awt.*;


import objets.*;

/** Classe qui cree un decor. Par exemple, ici, la sortie, le coeur
 * et le gant sont des decors.
 * @author Cecile FRANCOU
 * @author Sophia GALLARDO
 * @version 1.1.6 
 * @see Interaction
 */

public class Decors{

    /** chemin des images */
    private String chemin_images;
    
    /** interaction entre le labyrinthe, joueurs et "decors"(bonus) */
    private Interaction interaction;
    
    /** Position du decor */
    private Cell position;

    /** nom  de l'image */
    private String nom_image;

    /** toolkit  pour l'image */
    private Toolkit toolkit_decor;
    
    /** image pour le decor */
    private Image image_decor;
  
    /** Cree une cellule dans le labyrinthe qui contient une image.
     * @param position position du decors
     * @param nom_image nom de l'image
     * @param interaction interaction entre les joueurs et le labyrinthe
     */
    public Decors(Cell position, String nom_image, Interaction interaction){
        // initialisation
	chemin_images = "images"+File.separatorChar+"traditionnel"+File.separatorChar;
        this.position = position;
        this.nom_image = nom_image;
        this.interaction = interaction;
    }

    /** Cree une cellule dans le labyrinthe qui contient une image.
     * @param position position du decors
     * @param chemin_images chemin des images selon le theme du labyrinthe courant
     * @param nom_image nom de l'image contenue dans le decor
     * @param interaction interaction entre les joueurs, le labyrinthe et les bonus
     */
    public Decors(Cell position, String chemin_images, String nom_image, Interaction interaction){
        // initialisation
	
	this.chemin_images = chemin_images;
        this.position = position;
        this.nom_image = nom_image;
        this.interaction = interaction;
    }

    /** Modifie le chemin des images.
     * @param chemin_images chemin des images
     */
    public void setChemin_image(String chemin_images){
        this.chemin_images = chemin_images;
    }
    
    
    /** Modifie la position du decor.
     * @param position position du decor.
     */
    public void setPosition(Cell position){
        this.position = position;
    }

    /** Renvoie la position du decor.
     * @return Cell position du decor.
     */
    public Cell getPosition(){
        return position;
    }

    /** Dessine le decor.
     * @param g graphique.
     */
    public void dessineToi(Graphics g){
        toolkit_decor = interaction.getToolkit();
        image_decor = toolkit_decor.getImage(chemin_images+nom_image);
        g.drawImage(image_decor, position.getX()*interaction.getLongueurcase(),position.getY()*interaction.getHauteurcase(),interaction.getLongueurcase(),interaction.getHauteurcase(),interaction);
    }

    /** Effacer le decor.
     * @param g graphique.
     */
    public void effaceToi(Graphics g){
        Toolkit toolkit_chemin = interaction.getToolkit();
        Image image_chemin = toolkit_chemin.getImage(chemin_images+"chemin.gif");
        
        // on affiche l'image "vide"
        g.drawImage(image_chemin,(getPosition()).getX()*interaction.getLongueurcase(),(getPosition()).getY()*interaction.getHauteurcase(),interaction.getLongueurcase(),interaction.getHauteurcase(),interaction); 
        
    }
	    
}// fin classe
       
       

